package com.battle.service.service.in;

import com.battle.pojo.param.trainingAchievement.GetTrainingAssessmentListByUserIdParam;
import com.battle.pojo.param.trainingAchievement.ImportTrainingAchievementParam;
import com.battle.pojo.param.trainingAchievement.ImportTrainingAssessmentParam;
import jakarta.servlet.http.HttpServletResponse;
import nirvana.core.domains.vo.PageResult;
import com.battle.pojo.param.trainingAssessment.*;
import com.battle.pojo.vo.trainingAssessment.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;


/**
 * 【描 述】：训练考核服务
 * 【环 境】：J2SE
 * 【详 细】：
 */
public interface TrainingAssessmentService {

    /**
     * 创建训练考核
     *
     * @param param
     */
    void createTrainingAssessment(CreateTrainingAssessmentParam param);


    /**
     * 移除训练考核
     *
     * @param id
     */
    void removeTrainingAssessment(Long id);

    /**
     * 启动/禁用训练考核
     *
     * @param id
     */
    void enabledTrainingAssessment(Long id);

    /**
     * 获取训练考核详情
     *
     * @param id
     * @return
     */
    GetTrainingAssessmentVo getTrainingAssessment(Long id);

    /**
     * 获取训练考核列表
     *
     * @param param
     * @return
     */
    PageResult<GetTrainingAssessmentListVo> getTrainingAssessmentList(GetTrainingAssessmentListParam param);

    /**
     * 个人培训考核列表
     *
     * @param param
     * @return
     */
    PageResult<GetTrainingAssessmentListVo> getTrainingAssessmentListByUserId(GetTrainingAssessmentListByUserIdParam param);

    /**
     * 导出个人培训考核
     * @param param
     * @param response
     * @throws IOException
     */
    void export(GetTrainingAssessmentListByUserIdParam param, HttpServletResponse response) throws IOException;

    /**
     * 获取训练考核下拉列表
     *
     * @param param
     * @return
     */
    List<GetTrainingAssessmentDownListVo> getTrainingAssessmentDownList(GetTrainingAssessmentDownListParam param);

    /**
     * 导入
     * @param param
     */
    void importTrainingAssessment(ImportTrainingAssessmentParam param) throws IOException;

}